/*
 * <p>Copyright： 东软烟草产品研发团队</p>
 */
package com.jkl.dao.project;

import java.util.List;
import java.util.Map;

import com.jkl.entity.project.dto.VillageDTO;
import com.jkl.entity.project.po.*;
import com.jkl.entity.project.vo.CarProjectVO;
import com.jkl.entity.project.vo.ProjectVO;
import org.apache.ibatis.annotations.Param;

import com.github.pagehelper.PageInfo;
import com.jkl.entity.bsAddition.BsAddition;
import com.jkl.entity.bsWorkflowLog.BsWorkflowLog;
import com.jkl.entity.drIndex.DrIndex;
import com.jkl.entity.drTable.DrTable;
import com.jkl.entity.drTableDetail.DrTableDetail;
import com.jkl.entity.index.IndexCharts;
import com.jkl.entity.index.PJIndex;
import com.jkl.entity.param.BSParam;
import com.jkl.entity.project.dto.ProjectInfoDTO;
import com.jkl.entity.project.extend.PJVillage;


import com.jkl.entity.project.vo.HomePageLeft;
import com.jkl.entity.project.vo.StatisticsSiteType;

import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.special.InsertListMapper;

/**
 * <p>
 * Dao
 * <p>
 * <p>
 * 变更说明：@author ji.k 2018-10-01Dao
 * <p>
 * Date:2018-10-01
 *
 * @author ji.k
 * @version 1.0
 */
public interface PJProjectMapper extends Mapper<PJProject>, InsertListMapper<PJProject> {
    //首页start
    List<HomePageLeft> homePageLeft(@Param("homePageName") String homePageName);

    List<HomePageLeft> homePageLine(@Param("homePageName") String homePageName);
    //首页end

    //站start
    //List<PJProjectNew> queryProjectByparamsNew(PJProjectNew param);//列表
    List<PJProject> queryProjectByparamsNew(PJProject param);// 列表

    PJProjectNew queryProjectNew(int rowId);//主表单个查询

    int updateStatus(String rowId, String Status);//改变状态

    int updateProjectNew(PJProjectNew projectNew);//主表更新

    int addPJProjectNew(PJProjectNew param);//新增

    //int addBurn(PJProjectAddBurn param);//焚烧站--新增
    void addBurn(PJProjectBurn param);

    int selectRowId(String projectType);

    //PJProjectAddBurn queryBurn(String projectId);//焚烧站--查询
    PJProjectBurn queryBurn(String projectId);

    LastData queryLast(String projectId);

    //int updateBurn(PJProjectAddBurn param);//焚烧站--更新
    void updateBurn(PJProjectBurn param);

    void updateWorkflowLog(int rowId, String nodeContent2);

    void addKitchen(PJProjectKitchen param);

    PJProjectKitchen queryKitchen(String projectId);

    void updateKitchen(PJProjectKitchen param);


    PJProjectAddCoordinate queryCoordinate(String projectId);//经纬度-查询

    int updateCoordinate(PJProject param);

    List<PJProjectNew> queryCoordinateAll(PJProjectNew param);//经纬度--查询全部


    List<StatisticsSiteType> statisticsSiteType(StatisticsSiteType param);//图表分析

    int getRowId();//获取id
    //站end

    //车start
    List<PJProjectCar> queryCarProject(PJProjectCar param);//列表

    int addCarProject(PJProjectCar param);//增加

    PJProjectCar queryCarObject(String projectId);


    int updateCarProject(PJProjectCar param);//修改
    //车end

    //绩效考核
    List<PJProjectIndexSetting> queryIndexSetting(PJProjectIndexSetting param);//列表

    PJProjectIndexSetting queryIndexSettingObject(String projectId);//查询


    int addProject(PJProject projetInfo);

    void updateProject(PJProject projetInfo);

    ProjectInfoDTO queryProjectInfoById(String projectId);

    void updateCtiyAudit(PJProject projectInfo);

    void updateProvinceAudit(PJProject projectInfo);

    void updateStatusTo5(Integer projectId);

    List<PJProject> queryProjectByparams(PJProject param);

    List<BSParam> queryInit(String groupCode);

    List<ProjectEcharts> getProjectEcharts(ProjectEcharts projectEcharts);

    List<PJProject> getIndexCharts(IndexCharts indexCharts);

    List<PJIndex> getIndex(@Param("level") int level, @Param("deptId") int deptId, @Param("year") String year);

    String getProjectSumByDept(@Param("deptId") String deptId, @Param("time") String time);

    List<PJProject> pjProjectUnitListdeptId(int deptId);

    List<PJProject> queryProjectsByTypeAndDeptId(@Param("deptId") int deptId, @Param("projectType") String projectType);

    PJProject PJProjectByrowId(@Param("rowId") int rowId, @Param("projectType") String projectType);

    int putLog(SljptLog param);

    int getImport(DrTable param);

    int indexImport(XljptIndexImport xljptIndexImport);

    int indexImporDetail(XljptIndexImport xljptIndexImport2);

    int getImportDetail(DrTableDetail drTableDetail);

    List<DrTable> upImport(List<Integer> param);

    int updateCode(int param);

    int updateTableCode(List<Integer> param);

    int insertTableLog(DrTable drTable);

    List<Integer> findRowId();

    int deleteIndex();

    int deleteIndexDetail(List<Integer> a);

    List<Integer> existsSourceId(Integer rowId);

    int insertUpTableLog(BsWorkflowLog bsWorkflowLog);

    void addBsAddition(BsAddition bsAddition);

//    int addProjectVillage(PJVillage params);

    void addVillage(PJVillage params);

    PJVillage queryVillage(int projectId);

    List<BsAddition> getFile(BsAddition param);

    int updateVillage(PJVillage param);

    int delProject(String projectId);

    int delFile(BsAddition param);

    List<PJProjectLogExtend> queryProjectLogExtendList(String projectId, String userType);

    List<PJProject> getFatherProjectList(int deptId, String projectType);

    List<PJProjectUnit> getPjProjectUnitList(String projectId);

    void addWorkflowLog(BsWorkflowLog bsWorkflowLog);

    int getWorkflowLogLastId();

    void addProjectLogExtend(BsWorkflowLog bsWorkflowLog);

    int projectLogExtendPass(String rowId);

    int projectLogExtendFail(String rowId, String workflowLogId, String projectId);

    BsWorkflowLog getWorkflowLogObj(int rowId);

    void addCollect(PJProjectCollect param);

    void addTransport(PJProjectTransport param);

    void addLandfill(PJProjectLandfill param);

    void addArchitecture(PJProjectBuild param);

    PJProjectCollect queryCollect(String projectId);

    List<PJProjectUnit> queryUnitList(String projectId);

    void updateCollect(PJProjectCollect param);

    int deleteUnit(int rowId);

    int addProjectUnit(PJProjectUnit projectUnit);

    PJProjectTransport queryTransport(String projectId);

    void updateTransport(PJProjectTransport param);

    PJProjectLandfill queryLandfill(String projectId);

    void updateLandfill(PJProjectLandfill param);

    PJProjectBuild queryArchitecture(String projectId);// 建筑--查询

    void updateArchitecture(PJProjectBuild param);

    List<Integer> getPjProjectUnit(int rowId);

    List<PJProjectLogExtend> getProjectLogExtendList(PJProjectLogExtend params);

    PJProjectCar queryCar(int rowId);

    void setCarOne(int rowId);

    List<PJProjectCar> queryAllCar();

    PJProject queryProjectById(int rowId);

    PJProjectCollect queryCollectProject(int projectId);

    PJProjectTransport queryTransportProject(int projectId);

    PJProjectBurn queryBurnProject(int projectId);

    PJProjectKitchen queryKitchenProject(int projectId);

    PJProjectLandfill queryLandfillProject(int projectId);

    PJProjectBuild queryBuildProject(int projectId);

    List<BsAddition> queryBsAddition(int sourceId);

    void setProjectState(int rowId);

    void setProjectState1(int id);

    void setProjectState2(int id);

    void setProjectState3(int id);

    void setProjectState4(int id);

    void setProjectState5(int id);

    void setProjectState6(int id);

    void setProjectState7(int id);

    List<PJProject> queryAllProject1();

    List<PJProjectCollect> queryAllCollect();

    List<PJProjectTransport> queryAllTransport();

    List<PJProjectBurn> queryAllBurn();

    List<PJProjectKitchen> queryAllKitchen();

    List<PJProjectLandfill> queryAllLandfill();

    List<PJProjectBuild> queryAllBuild();

    //List<BsAddition> queryAllBsAddition();
    void setState(int rowId);

    void setState1(int id);

    void setState2(int id);

    void setState3(int id);

    void setState4(int id);

    void setState5(int id);

    void setState6(int id);

    //void setState7(int id);
    PJProject queryProjectByParam(int id);

    void setBsAdditionState(int id);

    List<BsWorkflowLog> queryWorkflowLog(int id);

    void setVillageState(int id);

    void setWorkflowLogState(int id);

    List<PJProject> queryAllProject2();

    List<PJVillage> queryAllVillage();

    List<BsWorkflowLog> queryAllWorkflowLog(int id);

    List<PJProject> queryAllProject3();

    void updateProject2(PJProject projetInfo);

    BsWorkflowLog getWorkflowLog(int rowId);

    void insertWorkflowLogObj(BsWorkflowLog workflowLog);

    void updateProjectState(int rowId);

    BsAddition queryBsAddition2(int id);

    PJProjectLogExtend queryProjectLogExtend(int id);

    void updateProjectLogExtend(PJProjectLogExtend pexd);

    void updateWorkflowLog2(BsWorkflowLog workflowLog);

    void setTestState(int id);

    void setProjectStateTest(int rowId);

    List<PJProject> queryAllProject4();


    List<DSVolumeTotal> getTableFive(DSVolumeTotal params);

    List<businessWeightMonth> getTableSixTotal(businessWeightMonth params);
    List<businessWeightMonth> getTableSix(businessWeightMonth params);

    List<DSVolumeScope> getTableThree(DSVolumeScope params);

    List<PJTableFour> queryTableFour(PJTableFour param);

    List<PJTableTwo> queryTableTwo(PJTableTwo param);


    List<PJProject> queryProjectListByParam(PJProject param);


    List<PJProject> queryProjectByparamsVillage(PJVillage param);

    int addVillageProject(PJProject param);

    // 保存车辆路线
    void saveCarTransportRoutes(PJProjectCarRelationship pjProjectCarRelationship);
    // 查询车辆路线
    List<PJProjectCarRelationship> queryCarTransportRoutes(String vehicleId);

    void deleteCarTransportRoutes(String vehicleId);
    // 车辆总数
    int initCarNums();
    // 车辆分布数据
    List<CarProjectVO> initCarDistribution();
    // 运输环节数据
    List<CarProjectVO> initVehicleLink();
    // 运输类型数据
    List<CarProjectVO> initTransportType();
    // 车辆吨位
    List<CarProjectVO> initCarTon();

    int initCarNumsById(String deptId);

    List<CarProjectVO> initCarDistributionById(String deptId);

    List<CarProjectVO> initVehicleLinkById(String deptId);

    List<CarProjectVO> initTransportTypeById(String deptId);

    List<CarProjectVO> initCarTonById(String deptId);
    // 通过id 删除指定车辆
    Integer delCarProjectById(String carId);

    Integer addProjectNew(ProjectVO projectVO);

    VillageDTO queryVillage1(int projectId);

    Integer updateProject1(ProjectVO projectVO);

    int updateCar1(PJProjectCar param);
}
